// Loesung_von_Aufgabe_10.3_1_Minkowskidiagramm

// Maßstab: 1 Lichtstunde entspricht 50 Pixel und 1 Stunde entspricht 1 Sekunde

/* Damit nicht bei jedem Abspielen des Sketches zahlreiche Bilder abgespeichert
 werden, stehen am Ende des Sketches vor saveFrame zwei Schrägstriche. Diese muss
 man entfernen, wenn man Bilder aufzeichnen will */

float t;
float xL = 500; // Ortskoordinate des Lichtsignals
int xRS01 = 500; // Ortskoordinate von Raumstation 1
int xRS02 = 100; // Ortskoordinate von Raumstation 2
float xRA = 400; // Ortskoordinate von Raumschiff A
float xRB = 500; // Ortskoordinate von Raumschiff B
float xRC = 100; // Ortskoordinate von Raumschiff C
float vL = -50; // Lichtgeschwindigkeit entsprechend obigem Maßstab
float vRA = -15; // Geschwindigkeit von Raumschiff A
float vRB = -25; // Geschwindigkeit von Raumschiff B
float vRC = 10; // Geschwindigkeit von Raumschiff C

void setup()
{
  size(600, 100); // Maßstab 1 : 50
}

void draw()
{
  background(0);
  translate(0, 50);
  t = 1/frameRate;

  // Erde
  noStroke();
  fill(#1A0CF2);
  ellipse(-85, 0, 200, 200);

  // Raumstation 01
  fill(#B60CF5);
  ellipse(xRS01, 0, 20, 20);

  // Raumstation 02
  fill(#F7610A);
  ellipse(xRS02, 0, 20, 20);

  // Lichtsignal
  xL = xL + vL*t;
  fill(#FCFC03);
  ellipse(xL, 0, 10, 10);

  // Raumschiff A
  if (xRA >= 100)
  {
    xRA = xRA + vRA*t;
    fill(#C6C6C4);
    triangle(xRA-10, 0, xRA+10, -5, xRA+10, 5);
  }

  // Raumschiff B
  if (xRB >= 100)
  {
    xRB = xRB + vRB*t;
    fill(#0CF043);
    triangle(xRB-10, 0, xRB+10, -5, xRB+10, 5);
  }

  // Raumschiff C
  if (millis()/1000 >= 10)
  {
    xRC = xRC + vRC*t;
    stroke(255);
    fill(#080200);
    triangle(xRC+10, 0, xRC-10, -5, xRC-10, 5);
  }

  // Zeitangabe im Fenster
  textSize(20);
  fill(255);
  text("t in h = " +(float)round(millis()/100)/10, 475, -25);

  // Film erstellen
  //  saveFrame("Bilder/#####.jpg");

  if (millis()/1000 >= 22)
    noLoop();
}